/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prjtgl.controler.visiteur;

import java.util.HashMap;
import java.util.Map;
import org.zkoss.bind.BindUtils;
import prjtgl.metier.Application;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventQueues;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.*;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zul.*;
import prjtgl.metier.comptes.Admin;
import prjtgl.metier.comptes.Membre;
import prjtgl.metier.comptes.Recruteur;
import prjtgl.metier.comptes.Utilisateur;
import prjtgl.util.SessionUtilisateur;

/**
 * @class Class that deals with WindoW component in connexion.zul file
 */
public class ConnexionWindow extends SelectorComposer<Div> {

	@Wire
	Textbox email; //wired to a component called input
	@Wire
	Textbox mdp;
        @Wire
        Button retrieve;

	@Listen("onClick = #retrieve")
	public void submit(Event event) //register a listener to a component called retrieve
            {
		try {
                Utilisateur u = Application.getInstance().rechercherUtilisateur(email.getValue());
			if (u != null && u.verifierMotDePasse(mdp.getValue())) {
                    Map<String, Object> args = new HashMap();

                    // Mise en session de l'utilisateur
                    SessionUtilisateur.setUtilisateur(u);

                    // S'il s'agit d'un utilisateur
				if (u.getRole().equals(Utilisateur.MEMBRE)) {
			args.put("content", "/Membre/SonProfil.zul");
                        BindUtils.postGlobalCommand(null, null, "changePage", args);
				} else if (u.getRole().equals(Utilisateur.ADMIN)) {
			args.put("content", "/Admin/Administration.zul");
			BindUtils.postGlobalCommand(null, null, "changePage", args);
				} else if (u.getRole().equals(Utilisateur.RECRUTEUR)) {
                        // TODO Recruteur
                        args.put("content", "/Recruteur/SonProfil.zul");
                        BindUtils.postGlobalCommand(null, null, "changePage", args);
                    } 
		} 
              
          
                else  Clients.wrongValue(retrieve, "Adresse e-mail inconnue ou Mot de Passe incorrect");
		


		} catch (Exception e) {
			// TODO Error
		}
	}
}
